package com.yixia.zi.widget.dialog; import com.yixia.zi.R; import com.yixia.zi.utils.DeviceUtils; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.text.method.ScrollingMovementMethod; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class CommonAlertDialog extends Dialog implements android.view.View.OnClickListener { private Context mContext; private Drawable mTitleIcon; private String mTitle; private String mDescription; private String mOkText; private String mCancelText; private OnDialogItemClick mOnDialogItemClick; private TextView mSummary; public CommonAlertDialog(Context context, int theme, int title, int titleIcon, String description, int okText, int cancelText, OnDialogItemClick onDialogItemClick) { super(context, theme); this.mContext = context; this.mTitle = context.getString(title); if (titleIcon != 0) this.mTitleIcon = context.getResources().getDrawable(titleIcon); this.mDescription = description; this.mOkText = context.getString(okText); if (cancelText != 0) { this.mCancelText = context.getString(cancelText); } this.mOnDialogItemClick = onDialogItemClick; } public CommonAlertDialog(Context context, int theme, String title, Drawable titleIcon, String description, String okText, String cancelText, OnDialogItemClick onDialogItemClick) { super(context, theme); this.mContext = context; this.mTitle = title; this.mTitleIcon = titleIcon; this.mDescription = description; this.mOkText = okText; this.mCancelText = cancelText; this.mOnDialogItemClick = onDialogItemClick; } public CommonAlertDialog(Context context, int theme, String title, String description, String okText, String cancelText, OnDialogItemClick onDialogItemClick) { this(context, theme, title, null, description, okText, cancelText, onDialogItemClick); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.common_dialog_layout); setCanceledOnTouchOutside(true); ImageView icon = ((ImageView) findViewById(R.id.title_icon)); ((TextView) findViewById(android.R.id.title)).setText(mTitle); mSummary = (TextView) findViewById(android.R.id.summary); mSummary.setText(mDescription); mSummary.setMovementMethod(ScrollingMovementMethod.getInstance()); if (mTitleIcon != null) { icon.setImageDrawable(mTitleIcon); icon.setVisibility(View.VISIBLE); } Button okButton = (Button) findViewById(R.id.btn_ok); okButton.setText(TextUtils.isEmpty(mOkText) ? okButton.getText() : mOkText); okButton.setOnClickListener(this); Button cancelButton = (Button) findViewById(R.id.btn_cancel); if (TextUtils.isEmpty(mCancelText)) { cancelButton.setVisibility(View.GONE); } else { cancelButton.setText(TextUtils.isEmpty(mCancelText) ? cancelButton.getText() : mCancelText); cancelButton.setOnClickListener(this); } resize(); } public void resize() { Activity ctx = (Activity) mContext; int screenWidth = DeviceUtils.getScreenWidth(ctx); int screenHeight = DeviceUtils.getScreenHeight(ctx); int width = (int) (screenWidth * (screenWidth < screenHeight ? 0.8 : 0.6)); if (width > 600) width = 600; if (screenWidth < screenHeight) mSummary.setMaxLines(15); else { mSummary.setMaxLines(6); } getWindow().setLayout(width, ViewGroup.LayoutParams.WRAP_CONTENT); } @Override public void onClick(View v) { dismiss(); if (mOnDialogItemClick != null && v.getId() == R.id.btn_ok) { mOnDialogItemClick.onConfirmClick(v); } } public interface OnDialogItemClick { public void onConfirmClick(View v); } }